zxnake2
=======

El TAP de juego consta de 4 bloques de código BASIC, 1 bloque Screen, con la pantalla de carga, y tres bloques binarios que contienen los UDG y 2 juegos de caracteres.

zxnake2.tap
- "loader" (BASIC)
- "splash" (SCR)
- "udg"
- "cset1"
- "cset2"
- "zxnake2" (BASIC)
- "vars" (BASIC)
- "ending" (BASIC)

loader
------
Se encarga de comprobar que el programa esté en modo 48k. En caso afirmativo, carga el screen, los udg y los juegos de caracteres, que se colocan en la parte más alta de memória. También reserva una cantidad de memoria extra para almacenar una FIFO para el control de la serpiente. Finalmente se carga el bloque BASIC "zxnake2" que contiene el juego en si.

zxnake2
-------
Programa BASIC con el juego en si. Este programa espera encontrar ya los gráficos y la memoria necesaria reservada en la parte alta (trabajo de bloque loader). Lo primero que hace este programa es inicializar las variables. Estas se cargan del bloque BASIC "vars" con un merge y seguidamente comienza la ejecución.

vars
----
Programa BASIC que únicamente contiene las variables del juego preinicializadas. No contiene ninguna línea de código en si. Esto permite inicializar las variables con el orden adecuado y el contenido adecuado, pero ahorrando el código de inicialización de las mismas.

Si bien el bloque "vars" no contiene código, se ha adjuntado el código BASIC que inicializa las variables antes de guardarlas. Este código se ha de ejecutar una vez, borrar las líneas de código del mismo y después hacer un SAVE "vars" para generar el tap que se ha usado en la cinta final.

ending
------
Al superar el juego, se carga este programa (multicarga) que muestra la secuencia final y los crédigos. Una vez terminan los créditos, hay que seguir las instrucciones en pantalla para cargar de nuevo el juego. La tabla de récords y ciertos estados importantes del juego no se pierden durante la multicarga.

El bloque ending.bas contiene algunas líneas rem con datos en binario. En particular, la linea 1 contiene datos para un juego de caracteres con gráficos extra usados en los créditos. La línea 326 contiene datos reletavos a la ejecución del truco DEFADD, que se usa para conseguir un scroll de los créditos "al pixel" y en color.

**NOTA**. Las fuentes BASIC que se incluyen están en formato BAS2TAP.
